#!/usr/bin/lua

word = {}

function word:urlencode(str)
    str = string.gsub(str, "[%%]", "%%25")
    str = string.gsub(str, "[!]", "%%21")
    str = string.gsub(str, "[#]", "%%23")
    str = string.gsub(str, "[$]", "%%24")
    str = string.gsub(str, "[+]", "%%2B")
    str = string.gsub(str, "[@]", "%%40")
    str = string.gsub(str, "[:]", "%%3A")
    str = string.gsub(str, "[=]", "%%3D")
    str = string.gsub(str, "[?]", "%%3F")
    return string.gsub(str, "%s", '%%20')
end

function word:urldecode(str)
    str = string.gsub(str, "%%21", "!")
    str = string.gsub(str, "%%23", "#")
    str = string.gsub(str, "%%24", "$")
    str = string.gsub(str, "%%2B", "+")
    str = string.gsub(str, "%%40", "@")
    str = string.gsub(str, "%%3A", ":")
    str = string.gsub(str, "%%3D", "=")
    str = string.gsub(str, "%%3F", "?")
    str = string.gsub(str, "%%20", ' ')
    return string.gsub(str, "%%25", "%%")
end

return word